<?php
/**
 *	@func 微信(根据关键字,来判断发送信息)
 *	Author: Midoks
 *  Author URI: http://midoks.cachecha.com/
 */
class weixin_cmd{

	public $obj;

	//架构函数
	//@param object $obj
	public function __construct($obj){
		$this->obj = $obj;
	}

	/**
	 *	@func 命令分析运行
	 *	@ret xml
	 */
	public function cmd(){
		$kw = $this->obj->kw;//关键字
		$kw = $this->convert($kw);
		if(strlen($kw)==1 && $kw=='?'){
			return $this->error('');//显示帮助信息
		}

		//文章信息
		$wp_cmd = $this->wordpress_cmd($kw);
		if($wp_cmd){//真,就执行
			return $wp_cmd;
		}else{
			return $this->error('');//显示帮助信息
		}
	}

	//wordpress文件信息(主要的)
	public function wordpress_cmd($kw){
		include_once(WEIXIN_ROOT_LIB.'weixin_wordpress.php');
		$wp = new weixin_wordpress($this->obj, $this);
		switch($kw){
			case 'n5':
				$res = $wp->new5();
				break;
			case 'h5':
				$res = $wp->hot5();
				break;
			case 'r5':
				$res = $wp->rand5();
				break;
			case 'p?':
				$res = $wp->total();
				break;
			default:
				$res = $wp->pageView($kw);
				break;
		}
		wp_reset_query();
		return $res;
	}

	//错误返回的信息
	public function error($string){
		$text = "\n提供的方式:\nn5(最新文章五篇)\nh5(热门文章五篇)\nr5(随机文章五篇)。\n";
		$text .= "p?(文章数据)\np(数字)(翻页功能)\n";
		$text .= "例如:\np30(表示第30页[5篇一页])\n";
		$text .= "关键字查询:?你好\n(~你好~为关键字[页数同上])\n";
		$text .= "关键字查询:?你好!?\n(~?~后明面的?表示关键字多少页)\n";
		$text .= "关键字查询:?你好!1\n(~?~后明面的1表示关键字的第几页)\n";
		$text .= "上面的!表示分割符\n";

		$text .= "midoks竭诚为你服务\nmidoks.cachecha.com(博客地址)\n";
		if(!empty($string)){
			return $this->obj->toMsgText($string.$text);//文本
		}else{
			return $this->obj->toMsgText($text);//文本
		}
	}

	/**
	* 字符串半角和全角间相互转换
	* @param string $str 待转换的字符串
	* @param int $type TODBC:转换为半角；TOSBC，转换为全角
	* @return string 返回转换后的字符串
	*/
	public function convert($str, $type = 'TOSBC'){
		$dbc = array('！', '？');
		$sbc = array('!', '?');
		if($type == 'TODBC'){
			return str_replace($sbc, $dbc, $str); //半角到全角
		}elseif($type == 'TOSBC'){
			return str_replace($dbc, $sbc, $str); //全角到半角
		}else{
			return false;
		}
	}
}
?>
